package com.bilibili.juc.base;

import java.util.concurrent.*;

/**
设置守护线程 ，守护线程一般是执行一些后台任务，不会阻止JVM的退出，在其他所有线程执行完后JVM就会退出
 */
public class DaemonDemo
{
    public static void main(String[] args)//一切方法运行的入口
    {
        Thread t1 = new Thread(() -> {
            System.out.println(Thread.currentThread().getName()+"\t 开始运行, "+
                    (Thread.currentThread().isDaemon() ? "守护线程":"用户线程"));
            while(true)
            {
                System.out.println("执行后台任务，等其他线程执行完就跳出循环！");
            }
        },"t1");
        //这个set一定要在start启动之前执行，不然设置无效
        t1.setDaemon(true);
        t1.start();

        //暂停几秒钟线程
        try { TimeUnit.SECONDS.sleep(3); } catch (InterruptedException e) { e.printStackTrace(); }

        System.out.println(Thread.currentThread().getName()+"\t ----end 主线程");
    }
}
